Method of and apparatus for providing reserved bandwidth to ethernet devices over switched ethernet including a home network wall plate having a combined IEEE 1394 and ethernet modified HUB

ABSTRACT

A combined IEEE 1394-2000 and ethernet network allows devices to operate according to both the IEEE 1394-2000 protocol and the ethernet protocol. The devices within the network are able to send IEEE 1394-2000 isochronous data, IEEE 1394-2000 asynchronous data and ethernet data. Both IEEE 1394-2000 and ethernet devices are coupled to modified hubs (MHUBS) to form a local cluster. The MHUBS are coupled to an ethernet switch which controls communications between devices in different local clusters. The ethernet switch and the MHUBS obey an isochronous interval in which all isochronous data transfers and asynchronous data transfers from ethernet devices with an allocation of reserved bandwidth will be allowed. The ethernet switch sends a periodic isotick signal to begin the isochronous interval. Bandwidth remaining after the isochronous interval is then allocated to the IEEE 1394-2000 asynchronous traffic, until the start of the next isochronous interval.

RELATED APPLICATIONS

This Patent Application is a continuation of co-pending U.S. patent application Ser. No. 10/349,805, filed on Jan. 22, 2003 and entitled A METHOD OF AND APPARATUS FOR PROVIDING RESERVED BANDWIDTH TO ETHERNET DEVICES OVER SWITCHED ETHERNET INCLUDING A HOME NETWORK WALL PLATE HAVING A COMBINED IEEE 1394 AND ETHERNET MODIFIED HUB, which is a continuation-in-part of co-pending U.S. patent application Ser. No. 10/082,637, filed on Feb. 22, 2002 and entitled A METHOD OF AND APPARATUS FOR PROVIDING ISOCHRONOUS SERVICES OVER SWITCHED ETHERNET INCLUDING A HOME NETWORK WALL PLATE HAVING A COMBINED IEEE 1394 AND ETHERNET MODIFIED HUB, which claims priority under 35 U.S.C. §119(e) of the co-pending U.S. provisional application Ser. No. 60/271,858 filed on Feb. 26, 2001 and entitled HOME NETWORK WALL PLATE 1394 AND ETHERNET COMBINER/SPLITTER. The U.S. patent application Ser. No. 10/349,805, filed on Jan. 22, 2003 and entitled A METHOD OF AND APPARATUS FOR PROVIDING RESERVED BANDWIDTH TO ETHERNET DEVICES OVER SWITCHED ETHERNET INCLUDING A HOME NETWORK WALL PLATE HAVING A COMBINED IEEE 1394 AND ETHERNET MODIFIED HUB, the U.S. patent application Ser. No. 10/082,637, filed on Feb. 22, 2002 and entitled A METHOD OF AND APPARATUS FOR PROVIDING ISOCHRONOUS SERVICES OVER SWITCHED ETHERNET INCLUDING A HOME NETWORK WALL PLATE HAVING A COMBINED IEEE 1394 AND ETHERNET MODIFIED HUB and the provisional application Ser. No. 60/271,858 filed on Feb. 26, 2001 and entitled HOME NETWORK WALL PLATE 1394 AND ETHERNET COMBINER/SPLITTER are also hereby incorporated by reference.

FIELD OF THE INVENTION

The present invention relates to the field of communications between devices within a network configuration operating under multiple protocols. More particularly, the present invention relates to the field of converting and directing communications between devices, operating under different protocols, within a network configuration, including devices operating according to IEEE 1394 protocols and ethernet protocols.

BACKGROUND OF THE INVENTION

The IEEE standard, “IEEE 1394-2000 Standard For A High Performance Serial Bus,” Draft ratified in 2000, is an international standard for implementing an inexpensive high-speed serial bus architecture which supports both asynchronous and isochronous format data transfers. Isochronous data transfers are real-time transfers which take place such that the time intervals between significant instances have the same duration at both the transmitting and receiving applications. Each packet of data transferred isochronously is transferred in its own time period. An example of an ideal application for the transfer of data isochronously would be from a video recorder to a television set. The video recorder records images and sounds and saves the data in discrete chunks or packets. The video recorder then transfers each packet, representing the image and sound recorded over a limited time period, during that time period, for display by the television set. The IEEE 1394-2000 serial bus architecture provides multiple channels for isochronous data transfer between applications. A six bit channel number is broadcast with the data to ensure reception by the appropriate application. This allows multiple applications to simultaneously transmit isochronous data across the bus structure. Asynchronous transfers are traditional data transfer operations which take place as soon as possible and transfer an amount of data from a source to a destination.

The IEEE 1394-2000 standard provides a high-speed serial bus for interconnecting digital devices thereby providing a universal I/O connection. The IEEE 1394-2000 standard defines a digital interface for the applications thereby eliminating the need for an application to convert digital data to analog data before it is transmitted across the bus. Correspondingly, a receiving application will receive digital data from the bus, not analog data, and will therefore not be required to convert analog data to digital data. The cable required by the IEEE 1394-2000 standard is very thin in size compared to other bulkier cables used to connect such devices. Devices can be added and removed from an IEEE 1394-2000 bus while the bus is active. If a device is so added or removed the bus will then automatically reconfigure itself for transmitting data between the then existing nodes. A node is considered a logical entity with a unique address on the bus structure. Each node provides a configuration ROM, a standardized set of control registers and its own address space. Because of these advantages the IEEE 1394-2000 standard provides for a unique networking structure that is capable of incorporating audio/video devices, media play/record devices, computing devices and display devices.

The IEEE 1394-2000 standard defines a protocol as illustrated in FIG. 1. This protocol includes a serial bus management block 10 coupled to a transaction layer 12, a link layer 14 and a physical layer 16. The physical layer 16 provides the electrical and mechanical connection between a device or application and the IEEE 1394-2000 cable. The physical layer 16 also provides arbitration to ensure that all devices coupled to the IEEE 1394-2000 bus have access to the bus as well as actual data transmission and reception. The link layer 14 provides data packet delivery service for both asynchronous and isochronous data packet transport. This supports both asynchronous data transport, using an acknowledgment protocol, and isochronous data transport, providing real-time guaranteed bandwidth protocol for just-in-time data delivery. The transaction layer 12 supports the commands necessary to complete asynchronous data transfers, including read, write and lock. The transaction layer 12 also provides a path for isochronous management data to be transferred to the serial bus management block 10 via read operations with isochronous control compare-swap registers. The serial bus management block 10 contains an isochronous resource manager for managing isochronous data transfers. The serial bus management block 10 also provides overall configuration control of the serial bus in the form of optimizing arbitration timing, guarantee of adequate electrical power for all devices on the bus, assignment of the cycle master, assignment of isochronous channel and bandwidth resources and basic notification of errors.

A diverse range of products can be implemented with the ability to connect to an IEEE 1394-2000 serial bus network. These devices can have capabilities and functionality ranging from very simple to very complex. Specifically, a variety of audio/video devices, media play/record devices and computing/display devices are capable of being linked together over an IEEE 1394-2000 serial bus networking structure to support asynchronous and isochronous data transfers between the devices.

The IEEE 1394-2000 cable environment is a network of nodes connected by point-to-point links, including a port on each node's physical connection and the cable between them. The physical topology for the cable environment of an IEEE 1394-2000 serial bus is a non-cyclic network of multiple ports, with finite branches. The primary restriction on the cable environment is that nodes must be connected together without forming any closed loops.

The IEEE 1394-2000 cable connects ports together on different nodes. Each port includes terminators, transceivers and simple logic. A node can have multiple ports at its physical connection. The cable and ports act as bus repeaters between the nodes to simulate a single logical bus. Because each node must continuously repeat bus signals, a pair of power wires within the cable including a power wire VP and a ground wire VG, enable the physical layer of each node to remain operational even when the local power at the node is turned off. The pair of power wires is powered from local power of the active devices on the IEEE 1394-2000 serial bus. Accordingly, at least one of the active devices must be powered by local power. Together, the signals VG and VP form a power signal which is used by the nodes.

The cable physical connection at each node includes one or more ports, arbitration logic, a resynchronizer and an encoder. Each of the ports provide the cable media interface into which the cable connector is connected. The standard IEEE 1394-2000 cable connectors, used at both ends of the IEEE 1394-2000 cable provide six electrical contacts plus a shield. The six electrical contacts represent two contacts for each of the differential signals TPA and TPB, and a single contact each for the power signal VP and the ground signal VG. The arbitration logic provides access to the bus for the node. The resynchronizer takes received data-strobe encoded data bits and generates data bits synchronized to a local clock for use by the applications within the node. The encoder takes either data being transmitted by the node or data received by the resynchronizer, which is addressed to another node, and encodes it in data-strobe format for transmission across the IEEE 1394-2000 serial bus. Using these components, the cable physical connection translates the point-to-point topology of the cable environment into a virtual broadcast bus, which is expected by higher layers of the system. This is accomplished by taking all data received on one port of the physical connection, resynchronizing the data to a local clock and repeating the data out of all of the other ports from the physical connection.

There are network configurations and protocols other than IEEE 1394-2000 which are used to connect devices together. One such configuration and protocol is a local area network (LAN) operating according to Ethernet standards, such as the Institute of Electrical and Electronics Engineers (IEEE) 802.3 standard. Within a LAN, a multi-port router allows simultaneous communication between nodes of the LAN by segmenting the LAN into multiple network segments, each segment having a corresponding transmission medium. When a node (source node) sends data to another node (destination node) located on its same segment of the LAN (intra-segment communication), the data is communicated directly between the nodes without intervention by the multi-port router and is known as an intra-segment packet. Therefore, when the multi-port router receives an intra-segment packet, the multi-port router does not bridge the packet (the packet is filtered). When a node (source node) sends a data packet to another node (destination node) located on a different segment (inter-segment communication), the multi-port router appropriately forwards the data packet to the destination node.

Ethernet technology currently appears to be the leading technology for implementing home networks. The Ethernet standards support asynchronous data transfers which take place as soon as possible, based on a contention mechanism, and transfer an amount of data from a source node to a destination node. However, the Ethernet standards do not support isochronous data transfers or guaranteed bandwidth delivery.

SUMMARY OF THE INVENTION

A combined IEEE 1394-2000 and ethernet network allows devices on the network to operate according to both the IEEE 1394-2000 protocol and the ethernet protocol. The devices within the network are able to send IEEE 1394-2000 isochronous data, IEEE 1394-2000 asynchronous data and ethernet data. Both IEEE 1394-2000 and ethernet devices within the network are coupled to modified hubs (MHubs) to form a local cluster. The MHubs are coupled to an ethernet switch which controls communications between devices in different local clusters. The ethernet switch and the MHubs obey an isochronous interval. Preferably, within the isochronous interval all isochronous data transfers and asynchronous data transfers from ethernet devices with an allocation of reserved bandwidth will be allowed. Alternatively, only isochronous data from ethernet devices and from IEEE 1394-2000 devices is sent in the isochronous interval and asynchronous data from ethernet devices is sent after the isochronous interval. Preferably, on a regular and reoccurring period, the ethernet switch sends an isotick signal to begin the isochronous interval. Alternatively, clocks at all nodes within the network are synchronized to start and stop the isochronous interval at the same time without the need for any one device to transmit the isotick signal. Any bandwidth left after the isochronous interval is then allocated to the IEEE 1394-2000 asynchronous traffic, until the start of the next isochronous interval.

In one aspect of the present invention, a method of transmitting data within a network including one or more devices of a first type operating according to a first protocol and a second protocol and one or more devices of a second type operating according to only the second protocol comprises establishing a periodic cycle including a first portion and a second portion, allowing only transmissions from the one or more of the devices of the first type according to the first protocol and transmissions from the one or more devices of the second type according to the second protocol during the first portion and allowing only transmissions from the one or more devices of the first type according to the second protocol during the second portion. The one or more devices of the first type and the one or more devices of the second type communicate with each other within the network. The method further comprises converting the transmissions into a format understood by a receiving device. A duration of the first portion is dependent on a number of active streams of the first protocol and a number of the one or more devices of the second type within the network. The method further comprises establishing an active stream of the first protocol within the network and guaranteeing first protocol bandwidth to the active stream. The method further comprises reserving second protocol bandwidth for each one of the one or more devices of the second type. In an alternative embodiment, transmissions from the one or more devices of the first type in the first protocol are prioritized during the first portion over transmissions from the one or more devices of the second type in the second protocol. In a further alternative embodiment, transmissions from the one or more devices of the second type in the second protocol are prioritized during the first portion over transmissions from the one or more devices of the first type in the first protocol. Preferably, the one or more devices of the first type operate according to IEEE 1394 protocol and the one or more devices of the second type operate according to ethernet protocol. Preferably, the first protocol is isochronous and the second protocol is asynchronous.

In another aspect of the present invention, a modified hub device configured for coupling between two or more devices operating according to two or more different protocols and a switching device, the hub device comprises a first interface configured for coupling to and communicating with one or more devices of a first type operating according to a first protocol and a second protocol, a second interface configured for coupling to and communicating with one or more devices of a second type operating according to only the second protocol and a third interface configured for coupling to and communicating with the switching device, wherein the switching device sends a periodic signal which signals the start of a period having a first portion and a second portion, wherein only communications from the one or more devices of the first type operating in the first protocol and communications from the one or more devices of the second type operating in the second protocol are allowed during the first portion, and communications from the one or more devices of the first type operating in the second protocol are allowed during the second portion. The one or more devices of the first type and the one or more devices of the second type communicate with each other. The hub device further comprises a conversion circuit coupled to the first interface, the second interface and the third interface for converting transmissions into a format understood by a receiving device. A duration of the first portion is dependent on a number of active streams of the first protocol and a number of the one or more devices of the second type. The modified hub device communicates with the switching device to establish an active stream of the first protocol involving a device of the first type coupled to the hub device and further wherein appropriate bandwidth for the active stream is guaranteed when the active stream is established. The modified hub device communicates with the switching device to reserve second protocol bandwidth for communications involving a device of the second type coupled to the modified hub device. The modified hub device communicates with the switching device to establish an active stream of the first protocol involving a device of the first type coupled to the hub device and to assign a label corresponding to the active stream. Preferably, the device of the first type operates according to IEEE 1394 protocol and the device of the second type operates according to ethernet protocol. Preferably, the first protocol is isochronous and the second protocol is asynchronous. In an alternative embodiment, communications from the device of the first type in the first protocol are prioritized during the first portion over communications from the device of the second type in the second protocol. In a further alternative embodiment, communications from the device of the second type in the second protocol are prioritized during the first portion over communications from the device of the first type in the first protocol. The switching device is configured for coupling to a remote network of devices thereby providing a wide area network.

In still another aspect of the present invention, a switching device configured for coupling to two or more hub devices providing interfaces to one or more devices of a first type operating according to a first protocol and a second protocol and one or more devices of a second type operating according to only the second protocol, the switching device comprises a plurality of ports, each port coupled to a corresponding hub device for interfacing with devices coupled to the corresponding hub device and a control circuit coupled to the plurality of ports for sending a periodic signal which signals the start of a period having a first portion and a second portion, wherein only communications from the one or more devices of the first type operating in the first protocol and communications from the one or more devices of the second type operating in the second protocol are allowed during the first portion, and communications from the one or more devices of the first type operating in the second protocol are allowed during the second portion. The one or more devices of the first type and the one or more devices of the second type communicate with each other. A duration of the first portion is dependent on a number of active streams of the first protocol and a number of the one or more devices of the second type. The switching device communicates with the hub devices to establish an active stream of the first protocol involving a device of the first type and further wherein appropriate bandwidth for the active stream is guaranteed when the active stream is established. The switching device communicates with the hub devices to reserve second protocol bandwidth for communications involving a device of the second type coupled to a hub device. The switching device communicates with the hub devices to establish an active stream of the first protocol involving a device of the first type and to assign a label corresponding to the active stream. Preferably, the device of the first type operates according to IEEE 1394 protocol and the device of the second type operates according to ethernet protocol. Preferably, the first protocol is isochronous and the second protocol is asynchronous. In an alternative embodiment, communications from the device of the first type in the first protocol are prioritized during the first portion over communications from the device of the second type in the second protocol. In a further alternative embodiment, communications from the device of the second type in the second protocol are prioritized during the first portion over communications from the device of the first type of device in the first protocol. The switching device further comprises a remote interface circuit configured for coupling to a remote network of devices thereby providing a wide area network.

In still a further aspect of the present invention, a network of devices comprises a switching device including a plurality of ports and a control circuit coupled to the plurality of ports for sending a periodic signal which signals the start of a period having a first portion and a second portion, and a plurality of modified hub devices each including a first interface configured for coupling to and communicating with one or more devices of a first type operating according to a first protocol and a second protocol, a second interface configured for coupling to and communicating with one or more devices of a second type operating according to only the second protocol and a third interface coupled to a corresponding one of the plurality of ports, wherein only communications from the one or more devices of the first type operating in the first protocol and communications from the one or more devices of the second type operating in the second protocol are allowed during the first portion, and communications from the one or more devices of the first type operating in the second protocol are allowed during the second portion. The one or more devices of the first type and the one or more devices of the second type communicate with each other. Each of the modified hub devices further comprise a conversion circuit coupled to the first interface, the second interface and the third interface for converting transmissions into a format understood by a receiving device. A duration of the first portion is dependent on a number of active streams of the first protocol and a number of the one or more devices of the second type. Each of the modified hub devices communicate with the switching device to establish an active stream of the first protocol involving a device of the first type coupled to the hub device and further wherein appropriate bandwidth for the active stream is guaranteed when the active stream is established. Each of the modified hub devices communicate with the switching device to reserve second protocol bandwidth for communications involving a device of the second type coupled to a hub device. Each of the modified hub devices communicate with the switching device to establish an active stream of the first protocol involving a device of the first type coupled to the hub device and to assign a label corresponding to the active stream. Preferably, the device of the first type operates according to IEEE 1394 protocol and the device of the second type operates according to ethernet protocol. Preferably, the first protocol is isochronous and the second protocol is asynchronous. In an alternative embodiment, communications from the device of the first type in the first protocol are prioritized during the first portion over communications from the device of the second type in the second protocol. In a further alternative embodiment, communications from the device of the second type in the second protocol are prioritized during the first portion over communications from the device of the first type in the first protocol. The switching device further comprises a remote interface circuit configured for coupling to a remote network of devices thereby providing a wide area network.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a protocol of the IEEE 1394-2000 standard.

FIG. 2 illustrates a block diagram of an exemplary network according to the present invention.

FIG. 3 illustrates a front view of a wall-plate of the preferred embodiment of the present invention.

FIG. 4 illustrates a front view of a wall-plate of an alternate embodiment of the present invention.

FIG. 5 illustrates a functional block diagram of the electronics within a modified hub (MHub) of the preferred embodiment of the present invention.

FIG. 6 illustrates a functional block diagram of the electronics within an ethernet switch of the preferred embodiment of the present invention.

FIG. 7 illustrates a block diagram of the internal components of the PC 32.

FIG. 8 illustrates a flowchart of the steps performed by the ethernet switch 20 of the preferred embodiment of the present invention, during operation.

FIG. 9 illustrates a flowchart of the steps performed by the MHubs 30, 40, 50 and 60 of the preferred embodiment of the present invention, during operation.

FIG. 10 illustrates a flowchart of the steps performed by the MHubs 30, 40, 50 and 60 and the ethernet switch 20, when negotiating for isochronous bandwidth and establishing an isochronous channel according to the preferred embodiment of the present invention.

FIG. 11 illustrates a flowchart of the steps performed by the MHubs 30, 40, 50 and 60 and the ethernet switch 20, when reserving bandwidth for ethernet devices and establishing an ethernet reservation label according to the preferred embodiment of the present invention.

FIG. 12 illustrates a flowchart of the steps performed by the ethernet switch 20 of an alternative embodiment of the present invention, during operation.

FIG. 13 illustrates a flowchart of the steps performed by the MHubs 30, 40, 50 and 60 of the alternative embodiment of the present invention, during operation.

FIG. 14 illustrates a flowchart of the steps performed by the MHubs 30, 40, 50 and 60 and the ethernet switch 20, when negotiating for isochronous bandwidth and establishing an isochronous label according to the alternative embodiment of the present invention.

DETAILED DESCRIPTION OF THE EMBODIMENTS

A combined IEEE 1394-2000 and ethernet network allows devices on the network to operate according to both the IEEE 1394-2000 protocol and the ethernet protocol. The devices within the network are able to send IEEE 1394-2000 isochronous data, IEEE 1394-2000 asynchronous data and ethernet data. Both IEEE 1394-2000 and ethernet devices within the network are coupled to modified hubs (MHubs) to form a local cluster. The MHubs are coupled to an ethernet switch which controls communications between devices in different local clusters. The MHubs provide an interface between both IEEE 1394-2000 devices and ethernet devices and an ethernet switch. The devices coupled to the MHub within the local cluster provide communications to the MHub directed at other devices within the network. If appropriate, the MHub then forwards those communications to the ethernet switch, at the appropriate time. The MHub also receives communications from the ethernet switch directed to devices coupled to the MHub. The MHub then forwards those communications to the target device within the local cluster, at the appropriate time.

The MHub also preferably provides the appropriate conversions for data transmitted from the MHub, depending on the target device. The MHub preferably converts IEEE 1394-2000 packets to ethernet packets and ethernet packets to IEEE 1394-2000 packets, as appropriate. The MHub also preferably performs IEEE 1394-2000 and ethernet routing functionality to keep local traffic of devices within the MHub's local cluster isolated from the network, as appropriate, thereby conserving bandwidth through-out the network.

The ethernet switch receives communications from a first MHub on its corresponding port and forwards that communication to a second MHub, representing the target device, on the port corresponding to the second MHub. The ethernet switch and the MHubs obey an isochronous interval. Preferably, within the isochronous interval all asynchronous data transfers from ethernet devices with an allocation of reserved bandwidth and isochronous data transfers will be allowed. Alternatively, only isochronous data from ethernet devices and from IEEE 1394-2000 devices is sent in the isochronous interval and asynchronous data from ethernet devices is sent after the isochronous interval. On a regular and reoccurring period, the ethernet switch sends an isotick signal to begin the isochronous interval. Preferably, this isotick signal is sent every 125 microseconds by the ethernet switch to the MHubs. Alternatively, clocks at all nodes within the network are synchronized to start and stop the isochronous interval at the same time without the need for any one device to transmit the isotick signal. Any bandwidth left after the isochronous interval is then allocated to the IEEE 1394-2000 asynchronous traffic and other ethernet data from the ethernet devices, until the start of the next isochronous interval, in the preferred embodiment. In the alternate embodiment, only isochronous data transfers will be allowed during the isochronous interval. Any bandwidth left after the isochronous interval, in this alternate embodiment, is then allocated to the ethernet asynchronous traffic and the IEEE 1394-2000 asynchronous traffic. In a further alternate embodiment, the asynchronous data traffic from ethernet devices and isochronous data traffic is prioritized during the isochronous interval.

A block diagram of an exemplary network according to the present invention is illustrated in FIG. 2. This exemplary network is implemented within a house and includes devices that operate according to the IEEE 1394-2000 protocol and devices that operate according to the Ethernet protocol. Within this exemplary network, an ethernet switch 20 and a cable modem 22 are coupled together within a control room. The cable modem 22 is coupled to receive and transmit signals over transmission lines, as is well known by those skilled in the art. The cable modem 22 can be coupled to the internet and/or to a dedicated line to create a wide area network (WAN) with other networks of devices. The ethernet switch 20 is coupled to the remaining devices within the house through the modified hubs (MHubs) 30, 40, 50 and 60 located throughout the house. Both IEEE 1394-2000 and ethernet devices are coupled to the network through the MHubs 30, 40, 50 and 60.

In the first bedroom, a personal computer (PC) 32 is coupled to the MHub 30 by an ethernet cable 36. A stereo 34 is coupled to the MHub 30 by an IEEE 1394-2000 cable 38. The MHub 30 is coupled to the ethernet switch 20 by an ethernet cable 74.

In the second bedroom, a television 42 is coupled to a settop box (STB) 44. The settop box 44 is then coupled to the MHub 40 by an IEEE 1394-2000 cable 46. The MHub 40 is coupled to the ethernet switch 20 by an ethernet cable 76.

In the garage, a file server 52 is coupled to the MHub 50 by an ethernet cable 56. A media server 54 is coupled to the MHub 50 by an IEEE 1394-2000 cable 58. The MHub 50 is coupled to the ethernet switch 20 by an ethernet cable 78.

In the den, a settop box 64 is coupled to a television 62. The television 62 is then coupled to the MHub 60 by an IEEE 1394-2000 cable 70. A printer 68 is coupled to a PC 66. The PC 66 is coupled to the MHub 60 by an ethernet cable 72. The MHub 60 is coupled to the ethernet switch 20 by an ethernet cable 80.

As illustrated in FIG. 2, the devices within the house are interconnected using relatively inexpensive and commonly available ethernet and IEEE 1394-2000 technology. The devices are plugged into the MHubs throughout the house. Preferably, the MHubs are capable of coupling to both ethernet and IEEE 1394-2000 devices as will be described in detail below. Preferably, control software according to the present invention is included within the MHubs 30, 40, 50 and 60 and the ethernet switch 20. This control software allows networks, such as the home network illustrated in FIG. 2, to realize and implement both ethernet and IEEE 1394-2000 protocols. In a network according to the present invention, the IEEE 1394-2000 devices and the ethernet devices can utilize guaranteed bandwidth available for transmission over both the IEEE 1394-2000 cables and the ethernet cables.

The control software of the present invention within the MHubs 30, 40, 50 and 60 and the ethernet switch 20, manages the bandwidth over the combined network. The control software preferably reserves bandwidth for all ethernet devices coupled to the MHUBS 30, 40, 50 and 60, and provides priority within the isochronous interval to devices that have pre-negotiated isochronous data services. The ethernet switch 20 preferably includes the software that manages the ethernet communications over the reserved bandwidth and the isochronous communications between the MHUBS 30, 40, 50 and 60. The ethernet switch 20 and the MHUBS 30, 40, 50 and 60 obey an isochronous interval in which all asynchronous data transfers from ethernet devices with an allocation of reserved bandwidth and isochronous data transfers will be allowed. Any bandwidth left after the isochronous interval is then allocated to the asynchronous IEEE 1394-2000 traffic and other ethernet data, until the start of the next isochronous interval. The isochronous interval is preferably a regular and re-occurring event much like the IEEE 1394-2000 cycle start signal. In an alternate embodiment, only isochronous data transfers will be allowed during the isochronous interval. In a further alternate embodiment, the asynchronous data traffic from ethernet devices and the isochronous data traffic is prioritized during the isochronous interval.

Within the preferred embodiment of the present invention, the isochronous interval is started when the ethernet switch sends an isotick signal to all of the MHUBS, notifying the MHUBS that it is now okay to send asynchronous data from the ethernet devices with an allocation of reserved bandwidth and isochronous data. In the preferred embodiment, after receiving the isotick signal, the MHUBS send isochronous data for each of the established IEEE 1394-2000 isochronous channels and then from the ethernet devices that have reserved isochronous bandwidth. After the appropriate data is sent for each of the isochronous streams, the MHubs send asynchronous data for each of the ethernet devices that have reserved bandwidth. After the appropriate data is sent for each of the ethernet devices, the isochronous interval ends and the MHUBS are then free to send asynchronous IEEE 1394-2000 data and ethernet data from the ethernet devices until the MHUBS receive the next isotick signal beginning the next isochronous interval.

A front view of a wall plate of the preferred embodiment, is illustrated in FIG. 3. The wall-plate 92 provides the physical interface to the MHUBS and includes both IEEE 1394-2000 and ethernet receiving jacks. In the preferred embodiment illustrated in FIG. 3, the wall plate 92 includes the IEEE 1394-2000 receiving jacks 88 and 90 and the ethernet receiving jacks 82, 84 and 86. Alternatively, the wall plate 92 can include any number of IEEE 1394-2000 receiving jacks and ethernet receiving jacks.

Preferably, electronics contained within the MHub convert IEEE 1394-2000 packets to ethernet packets and ethernet packets to IEEE 1394-2000 packets, as appropriate, based on the requirements of the target device. The MHub electronics also preferably convert ethernet and IEEE 1394-2000 packets to the format required by the home network for room to room connections as well as connections to the internet. Preferably, the MHub electronics also contain IEEE 1394-2000 and ethernet bridging functionality to keep local traffic of devices within the room isolated from the home network, thereby conserving bandwidth through-out the home network.

Electrical power for the MHub electronics is preferably supplied by the backbone connection to the ethernet switch 20. Alternatively, the wall plate is integrated with an electrical power wall plate, as illustrated in FIG. 4. In the wall plate illustrated in FIG. 4, the MHub electronics behind the wall plate receive electrical power from the electrical wires coupled to the electrical power plugs 112 and 114. The electrical power plugs 112 and 114 are coupled to the electrical wires in a conventional manner.

A functional block diagram of the electronics within a preferred embodiment of the MHub 30 is illustrated in FIG. 5. The functional block diagram illustrated in FIG. 5 is intended to also be representative of the other MHUBS 40, 50 and 60. As described above, the MHub 30 includes the wall plate 92 which provides the physical interface of the connections to the devices coupled to the MHub 30. The MHub 30 includes an IEEE 1394-2000 interface circuit 120 which is coupled to the stereo 34 by the IEEE 1394-2000 cable 38. The MHub includes an ethernet interface circuit 122 which is coupled to the PC 32 by the ethernet cable 36. The IEEE 1394-2000 interface 120 and the ethernet interface 122 are coupled together by the connection 121.

Within the MHub 30, the IEEE 1394-2000 interface circuit 120 is coupled to an isochronous transmit queue 126 to provide isochronous data, received from the stereo 34, to the isochronous transmit queue 126. The IEEE 1394-2000 interface circuit 120 is also coupled to an input of an asynchronous multiplexer circuit 124, to transmit asynchronous data, received from the stereo 34. The IEEE 1394-2000 interface circuit 120 is coupled to receive data from a backbone interface demultiplexer circuit 134. The data received by the IEEE 1394-2000 interface circuit 120 from the backbone interface demultiplexer circuit 134 is both isochronous and asynchronous data. The data received by the IEEE 1394-2000 interface circuit 120 from the backbone interface demultiplexer circuit 134 is data received from the ethernet switch 20 intended for a target device coupled to the IEEE 1394-2000 interface circuit 120. The IEEE 1394-2000 interface circuit 120 is coupled to an isochronous receive queue 136 to receive isochronous data from the backbone interface demultiplexer circuit 134. The IEEE 1394-2000 interface circuit 120 is coupled to an IEEE 1394-2000 asynchronous receive queue 138 to receive IEEE 1394-2000 asynchronous data from the backbone interface demultiplexer circuit 134.

Within the MHub 30, the ethernet interface circuit 122 is coupled to an input of the asynchronous multiplexer circuit 124 to transmit asynchronous data received from the PC 32. The ethernet interface circuit 122 is also coupled to a reserved ethernet transmit queue 129 to provide ethernet isochronous data, received from the PC 32, to the reserved ethernet transmit queue 129. The ethernet interface circuit 122 is coupled to receive data from the backbone interface demultiplexer circuit 134. The data received by the ethernet interface circuit 122 from the backbone interface demultiplexer circuit 134 preferably includes asynchronous ethernet data and isochronous ethernet data which is transmitted over reserved bandwidth. The ethernet interface circuit 122 is coupled to an ethernet asynchronous receive queue 140 to receive asynchronous ethernet data from the backbone interface demultiplexer circuit 134. The ethernet interface circuit 122 is coupled to a reserved ethernet receive queue 141 to receive isochronous ethernet data from the backbone interface demultiplexer circuit 134. The backbone interface demultiplexer circuit 134 is coupled to the ethernet switch 20 by the ethernet cable 74 to provide data from the ethernet switch 20 to the MHub 30 for devices coupled to the ethernet switch 20. The backbone interface demultiplexer circuit 134 is coupled to provide data received from the ethernet switch 20 to the isochronous receive queue 136, the IEEE 1394-2000 asynchronous receive queue 138, the ethernet asynchronous receive queue 140 and the reserved ethernet receive queue 141, as appropriate.

The output of the asynchronous multiplexer circuit 124 is coupled to an asynchronous transmit queue 128 to provide asynchronous data, received from the stereo 34 and from the PC 32, to the asynchronous transmit queue 128. The asynchronous transmit queue 128, the isochronous transmit queue 126, and the reserved ethernet transmit queue 129 are coupled to inputs of a backbone interface multiplexer circuit 132. The output of the backbone interface multiplexer circuit 132 is coupled to the ethernet switch 20 by the ethernet cable 74 to provide data from the MHub 30 to the ethernet switch 20. A CPU 130 is coupled to the backbone interface multiplexer circuit 132, to the backbone interface demultiplexer circuit 134 and to the asynchronous multiplexer circuit 124, to control the output of the data from the MHub 30 to the ethernet switch 20, as will be described in detail below.

Using protocols that will be described below, the MHub of the present invention provides an interface between both IEEE 1394-2000 devices and ethernet devices coupled to the MHub and an ethernet switch. The devices coupled to the MHub provide communications to the MHub directed at other devices within the network. If appropriate, the MHub then forwards those communications to the ethernet switch, at the appropriate time. The MHub also receives communications from the ethernet switch directed to devices coupled to the MHub. The MHub then forwards those communications to the target device, at the appropriate time, providing any conversion necessary to communicate with the target device.

A functional block diagram of the electronics within a preferred embodiment of the ethernet switch 20 is illustrated in FIG. 6. The ethernet switch 20 includes the ports 158, 160, 162 and 164, coupled to the MHUBS 30, 40, 50 and 60, respectively, by the ethernet cables 74, 76, 78 and 80, respectively. The ethernet switch 20 also includes a modem interface circuit 156 coupled to the cable modem 22. The ethernet switch 20 further includes a microprocessor 150, a random access memory (RAM) 152 and a read only memory (ROM) 154, coupled to the ports 158, 160, 162 and 164 and the modem interface circuit 156 by a system bus 166. Preferably, the ROM 154 includes the control software of the present invention for the ethernet switch 20 run by the microprocessor 150, to control the operation of the ethernet switch 20 and its interaction with the MHUBS 30, 40, 50 and 60. The RAM 152 is available for general use by the microprocessor 150 during execution of the software of the present invention and operation of the ethernet switch 20.

A block diagram of the internal components of the PC 32 is illustrated in FIG. 7. The PC 32 includes a central processor unit (CPU) 220, a main memory 230, a video memory 222, a mass storage device 232 and an ethernet interface circuit 228, all coupled together by a conventional bidirectional system bus 234. The interface circuit 228 includes the physical interface circuit for sending and receiving communications over the ethernet cable 36 to the MHub 30. The interface circuit 228 is coupled to the MHub 30 by the ethernet cable 36. In the preferred embodiment of the present invention, the interface circuit 228 is implemented on an ethernet interface card within the PC 32. However, it should be apparent to those skilled in the art that the interface circuit 228 can be implemented within the PC 32 in any other appropriate manner, including building the interface circuit onto the motherboard itself. The mass storage device 232 may include both fixed and removable media using any one or more of magnetic, optical or magneto-optical storage technology or any other available mass storage technology. The system bus 234 contains an address bus for addressing any portion of the memory 222 and 230. The system bus 234 also includes a data bus for transferring data between and among the CPU 220, the main memory 230, the video memory 222, the mass storage device 232 and the interface circuit 228.

The PC 32 is also coupled to a number of peripheral input and output devices including the keyboard 238, the mouse 240 and the associated display 212. The keyboard 238 is coupled to the CPU 220 for allowing a user to input data and control commands into the PC 32. A conventional mouse 240 is coupled to the keyboard 238 for manipulating graphic images on the display 212 as a cursor control device.

A port of the video memory 222 is coupled to a video multiplex and shifter circuit 224, which in turn is coupled to a video amplifier 226. The video amplifier 226 drives the display 212. The video multiplex and shifter circuitry 224 and the video amplifier 226 convert pixel data stored in the video memory 222 to raster signals suitable for use by the display 212.

Together, the ethernet switch 20 and the MHUBS 30, 40, 50 and 60 allow both IEEE 1394-2000 devices and ethernet devices to coexist within the same network. The IEEE 1394-2000 devices are able to communicate with other devices in the network using both isochronous streams and asynchronous data packets. The ethernet devices are able to communicate with other devices in the network using standard asynchronous data packets. Preferably, if isochronous channels have been established, which provide for isochronous streams within the network, and/or ethernet devices are coupled to any of the MHubs 30, 40, 50 and 60, then the ethernet switch 20 sends a periodic isochronous start signal, herein referred to as an isotick signal. Alternatively, the isotick signal is always sent, regardless of whether or not there are currently isochronous streams or ethernet devices within the network, allowing the isochronous clocks on all the MHUBS to stay synchronized.

In the preferred embodiment, when the MHUBS 30, 40, 50 and 60 receive this isotick signal, any of the MHUBS 30, 40, 50 and 60 that have IEEE 1394-2000 isochronous data to send will send the appropriate isochronous packets during this period, and any ethernet devices with an allocation of reserved bandwidth coupled to the MHubs 30, 40, 50 and 60 will send the appropriate asynchronous packets during this period. When the IEEE 1394-2000 isochronous data and the asynchronous data from the ethernet devices has been sent for the current period, the ethernet switch 20 then notifies the MHUBS 30, 40, 50 and 60 that the isochronous period is over. This allows the MHUBS 30, 40, 50 and 60 to then send IEEE 1394-2000 asynchronous data packets and ethernet data packets, until the next isotick signal is received. Preferably, the isotick signal is sent by the ethernet switch 20 every 125 microseconds, which corresponds to the cycle start signal of the IEEE 1394-2000 protocol. Preferably, the isochronous data is prioritized over the asynchronous data sent during the period corresponding to the isochronous interval. Alternatively, the asynchronous data can be prioritized over the isochronous data sent during the period corresponding to the isochronous interval.

A flowchart of the steps performed by the ethernet switch 20 of the preferred embodiment of the present invention, during its operation to manage the communication of data within the network, is illustrated in FIG. 8. The preferred process performed by the ethernet switch 20 starts at the step 600. At the step 602 it is determined if it is time to send an isotick signal. If it is determined that is not yet time to send an isotick signal, then at the step 604, further IEEE 1394-2000 asynchronous data packets and ethernet data packets are allowed, until it is determined at the step 602 that it is time to send an isotick signal. When it is determined at the step 602 that it is time to send the isotick signal, then it is determined, at the step 606, if there are any isochronous channels established and any current isochronous streams. If it is determined at the step 606 that there are no current isochronous streams, then the process jumps to the step 616.

Otherwise, if it is determined at the step 606 that there are current isochronous streams, then all MHUBS are notified to stop asynchronous traffic at the step 608. At the step 610, the first isochronous stream is then allowed on the network. It is then determined at the step 612 if there are more isochronous streams to send. If it is determined at the step 612 that there are more isochronous streams to send, then the next isochronous stream is allowed on the network, at the step 614. This continues until all isochronous streams have been sent. When it is determined at the step 612 that there are no more isochronous streams to send, or if it is determined at the step 606 that there are no current isochronous streams, then it is determined at the step 616 if any bandwidth has been reserved for asynchronous traffic from ethernet devices coupled to the MHUBS. Preferably, bandwidth is able to be reserved for any ethernet device coupled to an MHUB. If it is determined at the step 616 that bandwidth is reserved for ethernet device traffic, then at the step 618 an asynchronous data packet from each ethernet device is allowed on the network until it is determined at the step 616 that each ethernet device has been given an opportunity to send packets, up to their reserved bandwidth. When it is determined at the step 616 that each ethernet device has sent data packets up to their reserved bandwidth, then at the step 620 the ethernet switch notifies all MHUBS that the isochronous interval is over and IEEE 1394-2000 asynchronous traffic and ethernet traffic is now okay until the next isotick signal. The process then jumps to the steps 604 and 602 and continues to allow asynchronous traffic from non-ethernet devices until it is time to send the next isotick signal.

Although the preferred process described above in relation to FIG. 8 indicates that within the isochronous interval the ethernet switch first determines if there is any isochronous data to send and then determines if there is any non ethernet device asynchronous data to send, an alternate process can reverse this order. In this alternate process, for example, the steps 616 and 618 for determining and sending ethernet device asynchronous traffic can precede the steps 606, 610, 612, and 614 for determining and sending isochronous streams. In this case, the step 608 notifies all MHUBS to stop non-ethernet device asynchronous traffic and the step 608 is performed prior to step 618 in which asynchronous data is sent by the ethernet devices. It should also be understood that alternatively, the IEEE 1394-2000 asynchronous traffic and ethernet traffic is prioritized and could be separated in separate periods within the cycle.

A flowchart of the steps performed by each of the MHUBS 30, 40, 50 and 60 of the preferred embodiment of the present invention, during operation, is illustrated in FIG. 9. The preferred process performed by the MHUBS starts at the step 700. The process determines at the step 702 if the isotick signal has been received from the ethernet switch. If it is determined at the step 702 that the isotick signal has not been received, then it is determined at the step 716, if the MHub has any IEEE 1394-2000 asynchronous data or ethernet data to send, as will be discussed below. Once it is determined at the step 702 that the isotick signal has been received from the ethernet switch by the MHub, it is then determined, at the step 704, if the MHub currently has any isochronous streams to send. If it is determined at the step 704 that the MHub does have isochronous streams to send, then the MHub waits for the okay signal to send its isochronous stream, at the step 706. Once the MHub receives the okay signal to send its isochronous stream, the MHub then sends the isochronous streams that it has at the step 708. If it is determined at the step 704 that the MHub does not have any isochronous streams to send or after the MHub has sent its isochronous streams, at the step 708, it is then determined, at the step 710, if any bandwidth has been reserved for asynchronous traffic from ethernet devices coupled to the MHub. Bandwidth is preferably reserved for any ethernet device coupled to the MHub. If it is determined at the step 710 that bandwidth is reserved for ethernet device asynchronous traffic, then the MHub waits for the okay signal to send its ethernet device asynchronous traffic over the reserved bandwidth, at the step 712. Once the MHub receives the okay signal to send its ethernet device asynchronous traffic, the MHub then sends data packets up to the reserved bandwidth from each ethernet device that has data to send at the step 714. If it is determined at the step 710 that no bandwidth is reserved for ethernet device asynchronous traffic, or after the MHub has sent its ethernet reserved bandwidth traffic at the step 714, it is then determined at the step 716 if the MHub has any IEEE 1394-2000 asynchronous data or ethernet data to send. During this period, the device can send ethernet data for which there is not reserved bandwidth or excess data if there is available bandwidth. If it is determined at the step 716 that the MHub does not have any IEEE 1394-2000 asynchronous data or ethernet data to send, then the process jumps back to the step 702 to determine if the next isotick signal has been received from the ethernet switch.

Otherwise, if it is determined at the step 716 that the MHub does have IEEE 1394-2000 asynchronous data or ethernet data to send, then the MHub waits for the okay signal to send IEEE 1394-2000 asynchronous data or ethernet data, at the step 718. Once the MHub receives the okay signal to send its IEEE 1394-2000 asynchronous data or ethernet data, the MHub then sends the first IEEE 1394-2000 asynchronous data packet or ethernet data packet that it has, at the step 720. The process then jumps back to the step 702 to determine if the next isotick signal has been received from the ethernet switch.

Although the preferred process described above in relation to FIG. 9 indicates that within the isochronous interval each MHub first sends any isochronous data and then sends any ethernet device reserved bandwidth data, an alternate process can reverse this order. In this alternate process, for example, the steps 710, 712, and 714 for receiving an okay signal and sending ethernet device reserved bandwidth traffic can precede the steps 704, 706, and 708 for receiving an okay signal and sending isochronous streams.

A flowchart of the steps performed by the MHUBS 30, 40, 50 and 60 and the ethernet switch 20, when negotiating for isochronous bandwidth through the ethernet switch 20 and establishing an isochronous label, is illustrated in FIG. 10. The isochronous label corresponds to an isochronous channel and is established and maintained by the same device that is responsible for managing bandwidth. The process for negotiating for isochronous bandwidth and establishing an isochronous label starts at the step 800. At the step 802, an IEEE 1394-2000 device makes a request for isochronous bandwidth to the MHub to which it is coupled. At the step 804, the MHub that received the request for isochronous bandwidth, then makes a request for the isochronous bandwidth to the ethernet switch. At the step 806, the ethernet switch receives the isochronous bandwidth request from the MHub. The ethernet switch then determines, at the step 808, if there is enough remaining isochronous bandwidth to fulfill this request. To make this determination, the ethernet switch preferably compares the amount of isochronous bandwidth requested to a value representing an amount of available isochronous bandwidth. As new isochronous bandwidth is used on the network, the value representing the amount of available isochronous bandwidth is appropriately reduced. The value representing the amount of available isochronous bandwidth is preferably stored within an available isochronous bandwidth register. Alternatively, any other appropriate method of tracking available isochronous bandwidth is utilized, including utilizing a service within the network for tracking the amount of isochronous bandwidth being used and the amount of available isochronous bandwidth.

At the step 810, it is determined if there is enough isochronous bandwidth to fulfill the request. If it is determined at the step 810 that there is enough available isochronous bandwidth on the network to fulfill the request, then at the step 812, the available isochronous bandwidth register is updated to reduce the amount of isochronous bandwidth available on the network and the isochronous label is assigned. At the step 814, the requesting MHub is then notified that the isochronous bandwidth request has been approved, the requested isochronous bandwidth has been allocated and an isochronous label has been assigned. At the step 816, the MHub then allows the IEEE 1394-2000 isochronous device stream onto the backbone network, during the isochronous period. The process then ends at the step 822.

If it is determined at the step 810 that there is not enough available isochronous bandwidth on the network to fulfill the request, then at the step 818, the requesting MHub is notified that the isochronous bandwidth request has been denied. At the step 820, the MHub will not allow the IEEE 1394-2000 isochronous device stream onto the backbone network. The process then ends at the step 822. It should be understood that if there is not enough available isochronous bandwidth on the network to fulfill the request, that the isochronous stream can still be transmitted among the local devices, but not from the MHub to the ethernet switch.

A flowchart of the steps performed by the MHUBS 30, 40, 50 and 60 and the ethernet switch 20, when reserving bandwidth for ethernet devices through the ethernet switch 20 and establishing an ethernet reservation label, is illustrated in FIG. 11. The ethernet reservation label indicates a particular ethernet device for which bandwidth has been reserved and is established and maintained by the same device that is responsible for managing bandwidth. The process for negotiating for ethernet device reserved bandwidth and establishing an ethernet reservation label starts at the step 900. At the step 902, the MHub detects a coupled ethernet device. At the step 904, the MHub that detects the ethernet device makes a request for reserved bandwidth for the detected ethernet device to the ethernet switch. At the step 906, the ethernet switch receives the reserved bandwidth request from the MHub. The ethernet switch then determines, at the step 908, if there is enough remaining reserved bandwidth for ethernet devices to fulfill this request. To make this determination, the ethernet switch preferably compares the amount of reserved bandwidth requested to a value representing an amount of available reserved bandwidth for ethernet devices. As new reserved bandwidth is used on the network, the value representing the amount of available reserved bandwidth for ethernet devices is appropriately reduced. The value representing the amount of available reserved bandwidth for ethernet devices is preferably stored within an available reserved bandwidth register. Alternatively, any other appropriate method of tracking available reserved bandwidth for ethernet devices is utilized, including utilizing a service within the network for tracking the amount of reserved bandwidth being used and the amount of available reserved bandwidth for ethernet devices.

At the step 910, it is determined if there is enough reserved bandwidth for ethernet devices to fulfill the request. If it is determined at the step 910 that there is enough available reserved bandwidth for ethernet devices on the network to fulfill the request, then at the step 912, the available reserved bandwidth register is updated to reduce the amount of reserved bandwidth for ethernet devices available on the network and the ethernet reservation label is assigned. At the step 914, the requesting MHub is then notified that the reserved bandwidth request has been approved, the requested reserved bandwidth has been allocated and an ethernet reservation label has been assigned. At the step 916, the MHub then allows an asynchronous data packet from the ethernet device onto the backbone network, during the isochronous period. The process then ends at the step 922.

If it is determined at the step 910 that there is not enough available reserved bandwidth for ethernet devices on the network to fulfill the request, then at the step 918, the requesting MHub is notified that the reserved bandwidth request has been denied. At the step 920, the MHub will not allow an asynchronous data packet from the ethernet device onto the backbone network. The process then ends at the step 922. It should be understood that if there is not enough available reserved bandwidth for ethernet devices on the network to fulfill the request, that the data packet from the ethernet device can still be transmitted among the local devices, but not from the MHub to the ethernet switch during the isochronous period. The data packet from the ethernet device can be sent along after the isochronous period using conventional arbitration processes.

As an alternative to the bandwidth reservation process described above in regards to FIG. 11, an additional step 903 can be added where the MHub analyzes the ethernet traffic to be sent by the detected ethernet device in order to determine if reserving bandwidth is necessary. In this case, only specific types of data, such as UDP (User Datagram Protocol) packets, will prompt the MHub to request reserved bandwidth from the ethernet switch. Further, if there is no data to be sent, then the MHub does not reserve bandwidth for this detected ethernet device.

As an example of the operation of the devices within the network of the preferred embodiment of the present invention, the initiation and operation of an isochronous transmission from the media server 54 to the stereo 34 and an asynchronous transmission from the file server 52 (an ethernet device) to the PC 32 will be described. To set up the isochronous transmission, one of the devices (in this example the media server 54) sends a request to its corresponding MHub 50 to allocate the necessary isochronous bandwidth for the transmission. The MHub 50 then sends a request to the ethernet switch 20 to allocate the necessary isochronous bandwidth for the isochronous transmission. As described above, the ethernet switch 20 then determines if the isochronous bandwidth is available on the network. The ethernet switch 20 then informs the MHub 50 whether or not the necessary isochronous bandwidth is available on the network and assigns an isochronous label to the isochronous transmission. If the necessary isochronous bandwidth is available, then the isochronous transmission is established between the media server 54 and the stereo 34 and the required isochronous bandwidth is reserved.

To set up the asynchronous transmission, the MHUB 50 detects the file server 52 as an ethernet device. The MHub 50 then sends a request to the ethernet switch 20 to allocate the necessary reserved bandwidth for the asynchronous transmission. As described above, the ethernet switch 20 then determines if the reserved bandwidth for the ethernet device, file server 52, is available on the network. The ethernet switch 20 then informs the MHUB 50 whether or not the necessary reserved bandwidth is available on the network and assigns an ethernet reservation label to the asynchronous transmission. If the necessary reserved bandwidth is available, then the asynchronous transmission is established between the file server 52 and the PC 32 and the required reserved bandwidth is reserved.

The media server 54 then sends the isochronous data to the MHUB 50, where it is first stored in the isochronous memory 126, and the file server 52 sends an asynchronous data packet to the MHUB 50, where it is first stored in the asynchronous memory 128. When the MHUB 50 receives an isochronous okay signal from the ethernet switch 20, the MHUB 50 then sends the appropriate amount of isochronous data from the isochronous memory 126 to the ethernet switch 20. At the ethernet switch 20, the isochronous data is received at the port 162 and transmitted out of the port 158 to the MHUB 30. The MHUB 30 then receives the data from the ethernet switch 20 and forwards it to the stereo 34. This process is repeated at every isotick signal while this isochronous channel is active. When the MHUB 50 receives an ethernet okay signal from the ethernet switch 20, the MHUB 50 then sends the asynchronous data packet from the asynchronous memory 128 to the ethernet switch 20. At the ethernet switch 20, the asynchronous data packet from the file server 52 is received at the port 162 and transmitted out of the port 158 to the MHUB 30. The MHUB 30 then receives the asynchronous data packet from the ethernet switch 20 and forwards it to the PC 32. This process is repeated at every isotick signal while this bandwidth is reserved for the ethernet device, file server 52. Asynchronous data and ethernet data is transmitted between devices in the same manner during the asynchronous interval of each period.

The combined IEEE 1394-2000 and ethernet network of the preferred embodiment of the present invention allows devices on the network to operate according to both the IEEE 1394-2000 protocol and the ethernet protocol. It should be apparent to those skilled in the art, that alternatively, the present invention could also be utilized with other protocols, including the universal serial bus (USB) protocols and asynchronous transfer mode (ATM) protocols. It should also be apparent that in further alternate embodiments, the present invention could be utilized within a network operating according to more than two protocols. For example, the network could be configured to include devices operating according to the IEEE 1394-2000 protocol, the USB protocol and the ethernet protocol. In this alternate embodiment, the network could include multiple time-based protocols and multiple asynchronous protocols.

The devices within the network are able to send IEEE 1394-2000 isochronous data, IEEE 1394-2000 asynchronous data and ethernet data. As described above, both IEEE 1394-2000 devices and ethernet devices within the network are coupled to modified hubs (MHUBS) to form a local cluster. The MHUBS are coupled to the ethernet switch which controls communications between devices in different local clusters. The ethernet switch and the MHUBS obey an isochronous interval in which all asynchronous data transfers from ethernet devices and isochronous data transfers will be allowed. On a regular and reoccurring period, the ethernet switch sends an isotick signal to begin the isochronous interval. Any bandwidth left after the isochronous interval is then allocated to the IEEE 1394-2000 asynchronous traffic, until the start of the next isochronous interval. Together, the MHUBS and the ethernet switch allow both IEEE 1394-2000 devices and ethernet devices to coexist within the network. The IEEE 1394-2000 devices are able to communicate over the network using both isochronous streams and asynchronous data packets. The ethernet devices are able to communicate with other devices in the network using standard ethernet asynchronous data packets.

In an alternative embodiment, the ethernet switch and the MHUBS obey an isochronous interval in which all isochronous data transfers will be allowed. On a regular and reoccurring period, the ethernet switch sends an isotick signal to begin the isochronous interval. In this alternative embodiment, the isotick is sent every 125 microseconds by the ethernet switch to the MHUBS. Alternatively, clocks at all nodes within the network are synchronized to start and stop the isochronous interval at the same time without the need for any one device to transmit the isotick signal. Any bandwidth left after the isochronous interval is then allocated to the traditional ethernet traffic and the IEEE 1394-2000 asynchronous traffic, until the start of the next isochronous interval. In a further alternate embodiment, the asynchronous traffic is prioritized between IEEE 1394-2000 asynchronous traffic and traditional ethernet traffic during the asynchronous period.

In this alternative embodiment, when the MHUBS 30, 40, 50 and 60 receive this isotick signal, any of the MHUBS 30, 40, 50 and 60 that have IEEE 1394-2000 isochronous data to send, will send the appropriate isochronous packets during this period. When the isochronous data has been sent for the current period, the ethernet switch 20, then notifies the MHUBS 30, 40, 50 and 60 that the isochronous period is over. This allows the MHUBS 30, 40, 50 and 60 to then send IEEE 1394-2000 asynchronous data packets and ethernet packets, until the next isotick signal is received. The isotick signal is sent by the ethernet switch 20 every 125 microseconds, which corresponds to the cycle start signal of the IEEE 1394-2000 protocol.

A flowchart of the steps performed by the ethernet switch 20 of this alternative embodiment of the present invention, during its operation to manage the communication of data within the network, is illustrated in FIG. 12. The alternative process performed by the ethernet switch 20 starts at the step 300. At the step 302 it is determined if it is time to send an isotick signal. If it is determined that is not yet time to send an isotick signal, then at the step 304, further asynchronous data packets are allowed, until it is determined at the step 302 that it is time to send an isotick signal. When it is determined at the step 302 that it is time to send the isotick signal, then it is determined, at the step 306, if there are any isochronous channels established and any current isochronous streams. If it is determined at the step 306 that there are no current isochronous streams, then the alternative process jumps to the steps 304 and 302 and continues to allow asynchronous traffic until it is time to send the next isotick signal.

Otherwise, if it is determined at the step 306 that there are current isochronous streams, then all MHUBS are notified to stop asynchronous traffic at the step 308. At the step 310, the first isochronous stream is then allowed on the network. It is then determined at the step 312 if there are more isochronous streams to send. If it is determined at the step 312 that there are more isochronous streams to send, then the next isochronous stream is allowed on the network, at the step 314. This continues until all isochronous streams have been sent. When it is determined at the step 312 that there are no more isochronous streams to send, then at the step 316 the ethernet switch notifies all MHUBS that the isochronous interval is over and asynchronous traffic is now okay until the next isotick signal. The alternative process then jumps to the steps 304 and 302 and continues to allow asynchronous traffic until it is time to send the next isotick signal.

A flowchart of the steps performed by each of the MHUBS 30, 40, 50 and 60 of the alternative embodiment of the present invention, during operation, is illustrated in FIG. 13. The alternative process performed by the MHUBS starts at the step 400. The alternative process determines at the step 402 if the isotick signal has been received from the ethernet switch. If it is determined at the step 402 that the isotick signal has not been received, then it is determined at the step 410, if the MHUB has any asynchronous data to send, as will be discussed below. Once it is determined at the step 402 that the isotick signal has been received from the ethernet switch by the MHUB, it is then determined, at the step 404, if the MHUB currently has any isochronous streams to send. If it is determined at the step 404 that the MHUB does have isochronous streams to send, then the MHUB waits for the okay signal to send its isochronous stream, at the step 406. Once the MHUB receives the okay signal to send its isochronous stream, the MHUB then sends the isochronous streams that it has at the step 408. If it is determined at the step 404 that the MHUB does not have any isochronous streams to send or after the MHUB has sent its isochronous streams, at the step 408, it is then determined, at the step 410, if the MHUB has any asynchronous data to send. If it is determined at the step 410 that the MHUB does not have any asynchronous data to send, then the alternative process jumps back to the step 402 to determine if the next isotick signal has been received from the ethernet switch.

Otherwise, if it is determined at the step 410 that the MHUB does have asynchronous data to send, then the MHUB waits for the okay signal to send asynchronous data, at the step 412. Once the MHUB receives the okay signal to send its asynchronous data, the MHUB then sends the first asynchronous data packet that it has, at the step 414. The alternative process then jumps back to the step 402 to determine if the next isotick signal has been received from the ethernet switch.

A flowchart of the steps performed by the MHUBS 30, 40, 50 and 60 and the ethernet switch 20, when negotiating for isochronous bandwidth through the switch 20 and establishing an isochronous label according to the alternative embodiment of the present invention, is illustrated in FIG. 14. The isochronous label corresponds to an isochronous channel and is established and maintained by the same device that is responsible for managing bandwidth. The alternative process for negotiating for isochronous bandwidth and establishing an isochronous label starts at the step 500. At the step 502, an IEEE 1394-2000 device makes a request for isochronous bandwidth to the MHUB to which it is coupled. At the step 504, the MHUB that received the request for isochronous bandwidth, then makes a request for the isochronous bandwidth to the ethernet switch. At the step 506, the ethernet switch receives the bandwidth request from the MHUB. The ethernet switch then determines, at the step 508, if there is enough remaining isochronous bandwidth to fulfill this request. To make this determination, the ethernet switch can compare the amount of bandwidth requested to a value representing an amount of available bandwidth. As new bandwidth is used on the network, the value representing the amount of available bandwidth is appropriately reduced. The value representing the amount of available bandwidth can be stored within an available bandwidth register. Alternatively, any other appropriate method of tracking available bandwidth is utilized, including utilizing a service within the network for tracking the amount of bandwidth being used and the amount of available bandwidth.

At the step 510, it is determined if there is enough isochronous bandwidth to fulfill the request. If it is determined at the step 510 that there is enough available isochronous bandwidth on the network to fulfill the request, then at the step 512, the available bandwidth register is updated to reduce the amount of bandwidth available on the network and the isochronous label is assigned. At the step 514, the requesting MHUB is then notified that the bandwidth request has been approved, the requested isochronous bandwidth has been allocated and a label has been assigned. At the step 516, the MHUB then allows the IEEE 1394-2000 isochronous device stream onto the backbone network, during the isochronous period. The alternative process then ends at the step 522.

If it is determined at the step 510 that there is not enough available isochronous bandwidth on the network to fulfill the request, then at the step 518, the requesting MHUB is notified that the bandwidth request has been denied. At the step 520, the MHUB will not allow the IEEE 1394-2000 isochronous device stream onto the backbone network. The alternative process then ends at the step 522. It should be understood that if there is not enough available isochronous bandwidth on the network to fulfill the request, that the isochronous stream can still be transmitted among the local devices, but not from the MHUB to the ethernet switch.

As an example of the operation of the devices within the network of this alternative embodiment of the present invention, the initiation and operation of an isochronous transmission from the media server 54 to the stereo 34 will be described. To set up the isochronous transmission, one of the devices (in this example the media server 54) sends a request to its corresponding MHUB 50 to allocate the necessary isochronous bandwidth for the transmission. The MHUB 50 then sends a request to the ethernet switch 20 to allocate the necessary isochronous bandwidth for the transmission. As described above, the ethernet switch 20 then determines if the isochronous bandwidth is available on the network. The ethernet switch 20 then informs the MHUB 50 whether or not the necessary bandwidth is available on the network and assigns a label to the isochronous transmission. If the necessary isochronous bandwidth is available, then the isochronous transmission is established between the media server 54 and the stereo 34 and the required isochronous bandwidth is reserved.

The media server 54 then sends the isochronous data to the MHUB 50, where it is first stored in the isochronous memory 126. When the MHUB 50 receives an isotick signal from the ethernet switch 20, the MHUB 50 then sends the appropriate amount of isochronous data from the isochronous memory 126 to the ethernet switch 20. At the ethernet switch 20, the isochronous data is received at the port 162 and transmitted out of the port 158 to the MHUB 30. The MHUB 30 then receives the data from the ethernet switch 20 and forwards it to the stereo 34. This process is repeated at every isotick signal while this isochronous channel is active. Asynchronous data is transmitted between devices in the same manner during the asynchronous interval of each period.

The combined IEEE 1394-2000 and ethernet network of this alternative embodiment of the present invention allows devices on the network to operate according to both the IEEE 1394-2000 protocol and the ethernet protocol. It should be apparent to those skilled in the art, that alternatively, the present invention could also be utilized with other protocols, including the universal serial bus (USB) protocols and asynchronous transfer mode (ATM) protocols. It should also be apparent that in further alternate embodiments, the present invention could be utilized within a network operating according to more than two protocols. For example, the network could be configured to include devices operating according to the IEEE 1394-2000 protocol, the USB protocol and the ethernet protocol. In this alternate embodiment, the network could include multiple time-based protocols and multiple asynchronous protocols.

In this alternative embodiment, the devices within the network are able to send IEEE 1394-2000 isochronous data, IEEE 1394-2000 asynchronous data and ethernet data. As described above, both IEEE 1394-2000 devices and ethernet devices within the network are coupled to modified hubs (MHUBS) to form a local cluster. The MHUBS are coupled to the ethernet switch which controls communications between devices in different local clusters. The ethernet switch and the MHUBS obey an isochronous interval in which all isochronous data transfers will be allowed. On a regular and reoccurring period, the ethernet switch sends an isotick signal to begin the isochronous interval. Any bandwidth left after the isochronous interval is then allocated to the traditional ethernet traffic and the IEEE 1394-2000 asynchronous traffic, until the start of the next isochronous interval. Together, the MHUBS and the ethernet switch allow both IEEE 1394-2000 devices and ethernet devices to coexist within the network. The IEEE 1394-2000 devices are able to communicate over the network using both isochronous streams and asynchronous data packets. The ethernet devices are able to communicate with other devices in the network using standard ethernet asynchronous data packets.

The present invention has been described in terms of specific embodiments incorporating details to facilitate the understanding of the principles of construction and operation of the invention. Such references, herein, to specific embodiments and details thereof are not intended to limit the scope of the claims appended hereto. It will be apparent to those skilled in the art that modifications can be made in the embodiments chosen for illustration without departing from the spirit and scope of the invention. Specifically, it will be apparent to one of ordinary skill that while the preferred embodiment of the present invention is used with a combined IEEE 1394-2000 serial bus and ethernet structure, the present invention could also be implemented on any other appropriate digital interfaces or bus structures, or with any other appropriate protocols, including other or later versions of the IEEE 1394 serial bus, other local area network protocols or device connection protocols, including current or later versions of the USB protocol and ATM protocol. 

1. A method of transmitting data within a network including one or more devices of a first type operating according to a first protocol and a second protocol and one or more devices of a second type operating according to only the second protocol comprising: a. establishing a periodic cycle including a first portion and a second portion; b. allowing only transmissions from the one or more devices of the first type according to the first protocol and transmissions from the one or more devices of the second type according to the second protocol during the first portion; and c. allowing transmissions from the one or more devices of the first type according to the second protocol during the second portion.
 2. The method as claimed in claim 1 wherein the one or more devices of the first type and the one or more devices of the second type communicate with each other within the network.
 3. The method as claimed in claim 2 further comprising converting the transmissions into a format understood by a receiving device.
 4. The method as claimed in claim 1 wherein a duration of the first portion is dependent on a number of active streams of the first protocol and a number of the one or more devices of the second type within the network.
 5. The method as claimed in claim 1 further comprising establishing an active stream of the first protocol within the network and guaranteeing first protocol bandwidth to the active stream.
 6. The method as claimed in claim 5 further comprising reserving second protocol bandwidth for each one of the one or more devices of the second type.
 7. The method as claimed in claim 1 wherein transmissions from the one or more devices of the first type in the first protocol are prioritized during the first portion over transmissions from the one or more devices of the second type in the second protocol.
 8. The method as claimed in claim 1 wherein transmissions from the one or more devices of the second type in the second protocol are prioritized during the first portion over transmissions from the one or more devices of the first type in the first protocol.
 9. The method as claimed in claim 1 wherein the one or more devices of the first type operates according to IEEE 1394 protocol and the one or more devices of the second type operates according to ethernet protocol.
 10. The method as claimed in claim 1 wherein the first protocol is isochronous and the second protocol is asynchronous.
 11. The method as claimed in claim 1 further comprising analyzing a format of data to be sent by each of the one or more devices of the second type and reserving second protocol bandwidth for each of the one or more devices of the second type if the format is of a predetermined type.
 12. A modified hub device configured for coupling between two or more devices operating according to two or more different protocols and a switching device, the hub device comprising: a. a first interface configured for coupling to and communicating with one or more devices of a first type operating according to a first protocol and a second protocol; b. a second interface configured for coupling to and communicating with one or more devices of a second type operating according to only the second protocol; and c. a third interface configured for coupling to and communicating with the switching device, wherein the switching device sends a periodic signal which signals the start of a period having a first portion and a second portion, wherein only communications from the one or more devices of the first type operating in the first protocol and communications from the one or more devices of the second type operating in the second protocol are allowed during the first portion, and communications from the one or more devices of the first type operating in the second protocol are allowed during the second portion.
 13. The modified hub device as claimed in claim 12 wherein one or more devices of the first type and one or more devices of the second type communicate with each other.
 14. The modified hub device as claimed in claim 12 further comprising a conversion circuit coupled to the first interface, the second interface and the third interface for converting transmissions into a format understood by a receiving device.
 15. The modified hub device as claimed in claim 12 wherein a duration of the first portion is dependent on a number of active streams of the first protocol and a number of the one or more devices of the second type.
 16. The modified hub device as claimed in claim 12 wherein the modified hub device communicates with the switching device to establish an active stream of the first protocol involving a device of the first type coupled to the hub device and further wherein appropriate bandwidth for the active stream is guaranteed when the active stream is established.
 17. The modified hub device as claimed in claim 16 wherein the modified hub device communicates with the switching device to reserve second protocol bandwidth for communications involving a device of the second type coupled to the modified hub device.
 18. The modified hub device as claimed in claim 12 wherein the modified hub device communicates with the switching device to establish an active stream of the first protocol involving a device of the first type coupled to the hub device and to assign a label corresponding to the active stream.
 19. The modified hub device as claimed in claim 12 wherein the one or more devices of the first type operates according to IEEE 1394 protocol and the one or more devices of the second type operates according to ethernet protocol.
 20. The modified hub device as claimed in claim 12 wherein the first protocol is isochronous and the second protocol is asynchronous.
 21. The modified hub device as claimed in claim 12 wherein communications from the one or more devices of the first type in the first protocol are prioritized during the first portion over communications from the one or more devices of the second type in the second protocol.
 22. The modified hub device as claimed in claim 12 wherein communications from the one or more devices of the second type in the second protocol are prioritized during the first portion over communications from the one or more devices of the first type in the first protocol.
 23. The modified hub device as claimed in claim 12 wherein the switching device is configured for coupling to a remote network of devices thereby providing a wide area network.
 24. The modified hub device as claimed in claim 12 wherein the modified hub device analyzes a format of data to be sent by each of the one or more devices of the second type and reserves second protocol bandwidth for each of the one or more devices of the second type if the format is of a predetermined type.
 25. A switching device configured for coupling to two or more hub devices providing interfaces to one or more devices of a first type operating according to a first protocol and a second protocol and one or more devices of a second type operating according to only the second protocol, the switching device comprising: a. a plurality of ports, each port coupled to a corresponding hub device for interfacing with devices coupled to the corresponding hub device; and b. a control circuit coupled to the plurality of ports for sending a periodic signal which signals the start of a period having a first portion and a second portion, wherein only communications from the one or more devices of the first type operating in the first protocol and communications from the one or more devices of the second type operating in the second protocol are allowed during the first portion, and communications from the one or more devices of the first type operating in the second protocol are allowed during the second portion.
 26. The switching device as claimed in claim 25 wherein one or more devices of the first type and one or more devices of the second type communicate with each other.
 27. The switching device as claimed in claim 25 wherein a duration of the first portion is dependent on a number of active streams of the first protocol and a number of the one or more devices of the second type.
 28. The switching device as claimed in claim 25 wherein the switching device communicates with the hub devices to establish an active stream of the first protocol involving a device of the first type and further wherein appropriate bandwidth for the active stream is guaranteed when the active stream is established.
 29. The switching device as claimed in claim 28 wherein the switching device communicates with the hub devices to reserve second protocol bandwidth for communications involving a device of the second type coupled to a hub device.
 30. The switching device as claimed in claim 25 wherein the switching device communicates with the hub devices to establish an active stream of the first protocol involving a device of the first type and to assign a label corresponding to the active stream.
 31. The switching device as claimed in claim 25 wherein the one or more devices of the first type operates according to IEEE 1394 protocol and the one or more devices of the second type operates according to ethernet protocol.
 32. The switching device as claimed in claim 25 wherein the first protocol is isochronous and the second protocol is asynchronous.
 33. The switching device as claimed in claim 25 wherein communications from the one or more devices of the first type in the first protocol are prioritized during the first portion over communications from the one or more devices of the second type in the second protocol.
 34. The switching device as claimed in claim 25 wherein communications from the one or more devices of the second type in the second protocol are prioritized during the first portion over communications from the one or more devices of the first type in the first protocol.
 35. The switching device as claimed in claim 25 further comprising a remote interface circuit configured for coupling to a remote network of devices thereby providing a wide area network.
 36. The switching device as claimed in claim 25 wherein the switching device communicates with the hub devices to analyze a format of data to be sent by each of the one or more devices of the second type and reserves second protocol bandwidth for each of the one or more devices of the second type if the format is of a predetermined type.
 37. A network of devices comprising: a. a switching device including: i. a plurality of ports; and ii. a control circuit coupled to the plurality of ports for sending a periodic signal which signals the start of a period having a first portion and a second portion; and b. a plurality of modified hub devices each including: i. a first interface configured for coupling to and communicating with one or more devices of a first type operating according to a first protocol and a second protocol; ii. a second interface configured for coupling to and communicating with one or more devices of a second type operating according to only the second protocol; and iii. a third interface coupled to a corresponding one of the plurality of ports, wherein only communications from the one or more devices of the first type operating in the first protocol and communications from the one or more devices of the second type operating in the second protocol are allowed during the first portion, and communications from the one or more devices of the first type operating in the second protocol are allowed during the second portion.
 38. The network of devices as claimed in claim 37 wherein one or more devices of the first type and one or more devices of the second type communicate with each other.
 39. The network of devices as claimed in claim 37 wherein each of the modified hub devices further comprise a conversion circuit coupled to the first interface, the second interface and the third interface for converting transmissions into a format understood by a receiving device.
 40. The network of devices as claimed in claim 37 wherein a duration of the first portion is dependent on a number of active streams of the first protocol and a number of the one or more devices of the second type.
 41. The network of devices as claimed in claim 37 wherein each of the modified hub devices communicate with the switching device to establish an active stream of the first protocol involving a device of the first type coupled to the hub device and further wherein appropriate bandwidth for the active stream is guaranteed when the active stream is established.
 42. The network of devices as claimed in claim 41 wherein each of the modified hub devices communicate with the switching device to reserve second protocol bandwidth for communications involving a device of the second type coupled to a hub device.
 43. The network of devices as claimed in claim 37 wherein each of the modified hub devices communicate with the switching device to establish an active stream of the first protocol involving a device of the first type coupled to the hub device and to assign a label corresponding to the active stream.
 44. The network of devices as claimed in claim 37 wherein the one or more devices of the first type operates according to IEEE 1394 protocol and the one or more devices of the second type operates according to ethernet protocol.
 45. The network of devices as claimed in claim 37 wherein the first protocol is isochronous and the second protocol is asynchronous.
 46. The network of devices as claimed in claim 37 wherein communications from the one or more devices of the first type in the first protocol are prioritized during the first portion over communications from the one or more devices of the second type in the second protocol.
 47. The network of devices as claimed in claim 37 wherein communications from the one or more devices of the second type in the second protocol are prioritized during the first portion over communications from the one or more devices of the first type in the first protocol.
 48. The network of devices as claimed in claim 37 wherein the switching device further comprises a remote interface circuit configured for coupling to a remote network of devices thereby providing a wide area network.
 49. The network of devices as claimed in claim 37 wherein each of the modified hub devices communicate with the switching device to analyze a format of data to be sent by each of the one or more devices of the second type and reserve second protocol bandwidth for each of the one or more devices of the second type if the format is of a predetermined type. 